Principles of Imperative Computation ( Fall 2017 )
نویسنده
چکیده
In this lecture we consider two related algorithms for sorting that achieve a much better running time than the selection sort from an earlier lecture: mergesort and quicksort. We develop quicksort and its invariants in detail. As usual, contracts and loop invariants will bridge the gap between the abstract idea of the algorithm and its implementation. We will revisit many of the computational thinking, algorithm, and programming concepts from the previous lectures. We highlight the following important ones:
منابع مشابه
Physical Intelligence and Thermodynamic Computing
This paper proposes that intelligent processes can be completely explained by thermodynamic principles. They can equally be described by information-theoretic principles that, from the standpoint of the required optimizations, are functionally equivalent. The underlying theory arises from two axioms regarding distinguishability and causality. Their consequence is a theory of computation that ap...
متن کاملLecture Notes on Dynamic Programming 15-122: Principles of Imperative Computation
In this lecture we introduce dynamic programming, which is a high-level computational thinking concept rather than a concrete algorithm. Perhaps a more descriptive title for the lecture would be sharing, because dynamic programming is about sharing computation. We have already seen earlier that sharing of space is also crucial: binary decision diagrams in which subtrees are shared are (in pract...
متن کاملValigator: A Verification Tool with Bound and Invariant Generation
We describe Valigator, a software tool for imperative program verification that efficiently combines symbolic computation and automated reasoning in a uniform framework. The system offers support for automatically generating and proving verification conditions and, most importantly, for automatically inferring loop invariants and bound assertions by means of symbolic summation, Gröbner basis co...
متن کاملQuicksort 15 - 122 : Principles of Imperative Computation ( Summer 1 2015 )
In this lecture we consider two related algorithms for sorting that achieve a much better running time than the selection sort from last lecture: mergesort and quicksort. We developed quicksort and its invariants in detail. As usual, contracts and loop invariants will bridge the gap between the abstract idea of the algorithm and its implementation. We will revisit many of the computational thin...
متن کاملUnion - Find 15 - 122 : Principles of Imperative Computation ( Summer 1 2015 )
Kruskal’s algorithm for minimum weight spanning trees starts with a collection of single-node trees and adds edges until it has constructed a spanning tree. At each step, it must decide if adding the edge under consideration would create a cycle. If so, the edge would not be added to the spanning tree; if not, it will. In this lecture we will consider an efficient data structure for checking if...
متن کامل